【单片机】傻傻分不清?ISP和SPI的区别与联系 | 您所在的位置:网站首页 › spi flash 3byte和4byte的区别 › 【单片机】傻傻分不清?ISP和SPI的区别与联系 |
在折腾单片机的时候,总会听到ISP、SPI等缩写,这两组缩写甚至连字母都是一样的,但其实这两个缩写的含义并不相同,但又有联系(尤其是在烧录单片机的时候)。 本文尝试介绍这两者的定义,区别与联系。ISP和IPS别再傻傻分不清了。 ISP是In-System Programming(在系统可编程)的缩写,是一类技术的统称,即我们给单片机烧写(上传)程序的时候是通过串口/下载器/仿真器等比较简单的方式进行的。 在通过ISP上传程序的时候,单片机进入ISP子程序,使得我们可以方便地对ROM进行写入和擦除。 与ISP相对的烧写方式则是将单片机放在烧写座上,直接对它的ROM擦除,烧录程序的方法。 ISP其实这是我们通常给单片机(尤其是开发板)烧写程序的方式,只不过这种方式太习以为常了,所以我们也不总是提到它的名字罢了。其实,不论是用Arduino IDE通过USB串口对Arduino板子上传程序,还是用J-Link等仿真器对STM单片机上传程序,这些操作我们都可以称之为是“ISP”。 2. SPISPI是Serial Peripheral Interface(串行外设接口)的缩写。可能这个缩写大家更熟悉一些,它是一种串行总线协议,和我们其他常用的串行总线协议,如:I2C, UART(俗称串口), OneWire 等是一个类别的东西。 SPI是一种高速的,全双工,同步的通信总线,一般需要四根接线,分别是: SDO/MOSI – Master Out Slave In(主设备数据输出,从设备数据输入);SDI/MISO – Master In Slave Out(主设备数据输入,从设备数据输出);SCLK – 时钟信号,由主设备产生;CS/SS – 从设备使能信号,由主设备控制。 二、联系从定义我们可以看到,其实ISP和SPI这两个根本就不是一类的东西。那他们的联系在哪里呢? 答案是,我们在用ISP技术给单片机烧写程序的时候,有可能就是通过SPI协议进行上传的。 举例来说,当我们给Arduino烧写BootLoader(注意不是普通的上传程序)的时候,我们就是通过ISP技术并且通过SPI协议进行的。 当然也不是所有的ISP烧录用的都是SPI协议。比如我们一般通过USB接口给Arduino上传程序的时候,其实就是最普通的串口(UART)协议(板载了USB转串口芯片),也就是0号口和1号口的那个RX和TX。再比如烧写STM芯片的时候用我们就用的是SWD或JTAG协议。 三、总结ISP是In-System Programming的缩写,指的是我们给单片机上传程序的一种方式,使用的通信协议包括但不限于SPI; 而SPI是一种串行总线协议,用于设备之间的通信,也会被用做ISP时的通信协议。 觉得有用的话,不要吝惜评论点赞分享哦,希望大家多多包涵,有任何问题欢迎指正、讨论。 本文基于CC-BY-SA 4.0协议,欢迎转载 (博客看累了?去我的B站瞧一瞧?) |
CopyRight 2018-2019 实验室设备网 版权所有 |